package com.aiti.lulian.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CommunicateInfoSaveDto {

    /**
     * ID（主键）
     */
    @ApiModelProperty("ID")
    private String baseId;

    /**
     * 商机名称
     */
    @ApiModelProperty("商机名称")
    @NotBlank(message = "商机名称不能为空！")
    private String productName;

    /**
     * 联系人
     */
    @ApiModelProperty("联系人")
    //@NotNull(message = "联系人不能为空！")

    private String callName;

    /**
     * 联系方式
     */
    @ApiModelProperty("联系方式")
//    @NotNull(message = "联系人手机号不能为空！")
    private String phone;

    /**
     * 其他内容
     */
    @ApiModelProperty("其他内容")
    private String descInfo;

    /**
     * 来源
     */
    @ApiModelProperty("来源")
    private String source;

    /**
     * 企业Id
     */
    @ApiModelProperty("企业ID")
    private String companyId;

    /**
     * 企业名称
     */
    @ApiModelProperty("企业名称")
    //@NotNull(message = "企业名称不能为空！")
    private String companyName;

    /**
     * 销售负责人ID
     */
    @ApiModelProperty("销售负责人ID")
    private String salesHeadId;

    /**
     * 商机状态（'0'：沟通中，'1'：谈判中，'2'：已完成）
     */
    @ApiModelProperty("商机状态")
    private String status;

    /**
     * 类型（'1'：属于收到的商机，'2'：属于后台新增的商机）
     */
    @ApiModelProperty("类型")
    private String type;

    /**
     * 是否已删除（'0'：存在，'1'：已删）
     */
    @ApiModelProperty("是否已删除")
    private String isDel;

    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String creator;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date baseCreateTime;

    /**
     * 更新者
     */
    @ApiModelProperty("更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date baseUpdateTime;

    @ApiModelProperty("负责人名称")
    private String directorName;

    @ApiModelProperty("负责人id")
    private String directorId;

    @ApiModelProperty("客户id")
    @NotBlank(message = "客户不能为空！")
    private String customerId;

    @ApiModelProperty("询盘id")
    private String inquiryId;

    @ApiModelProperty("商机类型")
    private String communicateType;

    @ApiModelProperty("商机来源")
    private String communicateSource;

    @ApiModelProperty("成交进度")
    private String transactionProgress;

    @ApiModelProperty("备注")
    private String remark;

    private String userId;

    private String confirmStatus;

    private String communicateStatus;

    private String deptId;

    private MultipartFile file;

    private String field;

    private String fieldValue;

    private List<String> idList;

    private BigDecimal estimateSaleAmount;
    @ApiModelProperty("预计签单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date estimateSignTime;

    //是否覆盖，0为不覆盖，1为覆盖
    private String overrideFlag;

    @ApiModelProperty("商机获取时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date businessAquireTime;
    @ApiModelProperty("下次跟进时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date nextFollowUpTime;

    private List<String> collaboratorIdList;

    private String supplyUrl;
}